home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / CUGUK / COMMS / C035.ZIP / JMODEM_B.C < prev    next >
Text File  |  1990-02-17  |  5KB  |  100 lines

  1. /****************************************************************************/
  2. /*   FILE JMODEM_B.C                                                        */
  3. /*   Created 11-JAN-1990            Richard B. Johnson                      */
  4. /*                                  405 Brougton Drive                      *
  5. /*                                  Beverly, Massachusetts 01915            *
  6. /*                                  BBS (508) 922-3166                      *
  7. /*                                                                          *
  8. /*   allocate_memory();  (All memory allocation except for screen)          */
  9. /*   get port();         (Parse, get ASCII port)                            */
  10. /*   get_inp();          (Parse, get filename)                              */
  11. /*   get_fun();          (Parse, get function S,R )                         */
  12. /*   get_prt();          (Convert ASCII port to numeric offset)             */
  13. /*                                                                          *
  14. /****************************************************************************/
  15. #include <stdio.h>                              /* Used for _puts();        */
  16. #include <stdlib.h>                             /* Used for _calloc();      */
  17. #include <string.h>                             /* Used for _strcpy(), etc  */
  18. #include "jmodem.h"                             /* JMODEM primatives        */
  19. /****************************************************************************/
  20. /*                          Allocate memory                                 */
  21. /****************************************************************************/
  22. unsigned char *allocate_memory(buf_len)
  23. unsigned short buf_len;
  24. {
  25.     unsigned char *memory;
  26.     memory = (unsigned char *) calloc (buf_len, sizeof(char) );
  27.     if (memory == NULL)
  28.         puts("\nMemory allocation failed!");
  29.     return memory;
  30. }
  31. /****************************************************************************/
  32. /*                     Get port offset number ( 0 - 3)                      */
  33. /****************************************************************************/
  34. unsigned short get_port (prt_str)
  35. char prt_str;
  36. {
  37.     return ( ((unsigned short) prt_str) - '1');  /* Subtract ASCII bias + 1 */
  38.  
  39. }
  40. /****************************************************************************/
  41. /*                          Get filename                                    */
  42. /****************************************************************************/
  43. char *get_inp (argc, argv)
  44. unsigned short argc;
  45. char *argv[];
  46. {
  47.     short i=0;
  48.     static char name[64];               /* Max DOS filename/path size    */
  49.     if (argc >= 3)                      /* Check command-line parameters */
  50.     {
  51.         strcpy (name, argv[2]);         /* Copy the file name            */
  52.         while (name[i])                 /* Until the NULL character      */
  53.         {
  54.         if ( ( name[i] <= 'z')      /* Check upper limit             */
  55.           && ( name[i] >= 'a') )    /* Check lower limit             */
  56.                   name[i] &= 95;        /* Map to upper case             */
  57.         i++;
  58.         }
  59.         return name;                    /* Return a pointer to the name  */
  60.     }
  61.     return NULL;
  62. }
  63. /****************************************************************************/
  64. /*                          Get function  (S or R)                          */
  65. /****************************************************************************/
  66.  
  67. char *get_fun (argc,argv)
  68. unsigned short argc;
  69. char *argv[];
  70. {
  71.     static char funct[3];
  72.     if (argc >= 3)                              /* Command-line parameters */
  73.     {
  74.         strcpy (funct, argv[1]);
  75.         funct[1] = NULL;                        /* Blank out port number  */
  76.         funct[0] = funct[0] & 95;               /* Map to upper case      */
  77.         if (funct[0] == 'S' || funct[0] == 'R') /* Check valid parameters */
  78.             return &funct[0];
  79.     }
  80.     return NULL;
  81. }
  82. /****************************************************************************/
  83. /*                      Get port ASCII number (1 - 4)                       */
  84. /****************************************************************************/
  85. char *get_prt (argc,argv)
  86. unsigned short argc;
  87. char *argv[];
  88. {
  89.     static char prt[3];
  90.     if (argc >= 3)                              /* Command-line parameters  */
  91.     {
  92.         strcpy (prt, argv[1]);                  /* Get port number          */
  93.         if (prt[1] > '0' && prt[1] < '5')       /* Check for valid ports    */
  94.             return &prt[1];                     /* Pointer to the ASCII num */
  95.     }
  96.     return NULL;
  97. }
  98. /****************************************************************************/
  99. /************************ E N D  O F   M O D U L E **************************/
  100.